home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.4)
-
- import gtk
- import gobject
-
- class KbdWindow(gtk.Window):
- '''Very messy class holds the keyboard widget. The mess is the docked window support which is disable because of numerous metacity bugs.'''
-
- def __init__(self, sok):
- gtk.Window.__init__(self)
- self.keyboard = None
- self.sok = sok
- self.connect('destroy', gtk.main_quit)
- self.connect('size-request', self.cb_size_changed)
- self.set_accept_focus(False)
- self.grab_remove()
- self.set_keep_above(True)
- x = self.sok.gconfClient.get_int('/apps/sok/sizeX')
- y = self.sok.gconfClient.get_int('/apps/sok/sizeY')
- if x and y:
- self.set_default_size(x, y)
- else:
- self.set_default_size(800, 400)
-
-
- def set_keyboard(self, keyboard):
- if self.keyboard:
- self.remove(self.keyboard)
-
- self.keyboard = keyboard
- self.add(self.keyboard)
- self.keyboard.show()
- self.queue_draw()
-
-
- def do_set_layout(self, client, cxion_id, entry, user_data):
- pass
-
-
- def do_set_size(self, client, cxion_id, entry, user_data):
- self.set_default_size(self.sok.gconfClient.get_int('/apps/sok/sizeX'), self.sok.gconfClient.get_int('/apps/sok/sizeY'))
-
-
- def cb_size_changed(self, widget, event):
- size = self.get_allocation()
- if size.width > 1 and size.height > 1:
- self.sok.gconfClient.set_int('/apps/sok/sizeX', size.width)
- self.sok.gconfClient.set_int('/apps/sok/sizeY', size.height)
-
-
-
- def do_set_gravity(self, edgeGravity):
- self.edgeGravity = edgeGravity
- (width, height) = self.get_size()
- geom = self.get_screen().get_monitor_geometry(0)
- eg = self.edgeGravity
- x = 0
- y = 0
- if eg == gtk.gdk.GRAVITY_SOUTH:
- y = geom.height - height
-
- y += 29
- self.move(x, y)
- gobject.idle_add(self.do_set_strut)
-
-
- def do_set_strut(self):
- propvals = [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0]
- screen = self.get_screen()
- biggestHeight = 0
- for n in range(screen.get_n_monitors()):
- tempHeight = screen.get_monitor_geometry(n).height
- if biggestHeight < tempHeight:
- biggestHeight = tempHeight
- continue
-
- geom = self.get_screen().get_monitor_geometry(0)
- eg = self.edgeGravity
- (x, y) = self.window.get_origin()
- (width, height) = self.get_size()
- if eg == gtk.gdk.GRAVITY_NORTH:
- propvals[2] = height + y
- propvals[9] = width
- elif eg == gtk.gdk.GRAVITY_SOUTH and y != 0:
- print geom.height
- propvals[3] = biggestHeight - y
- propvals[11] = width - 1
-
- print propvals
- self.window.property_change('_NET_WM_STRUT_PARTIAL', 'CARDINAL', 32, gtk.gdk.PROP_MODE_REPLACE, propvals)
- self.queue_resize_no_redraw()
-
-
-